package com.house365.core.util.db;


import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
/**
 *@author py
 *@date 2012-9-19
 *@comment
 */
public class DataBaseOpenHelper extends SQLiteOpenHelper {
	// ��û��ʵ��,�ǲ����������๹�����Ĳ���,��������Ϊ��̬
	private DataBaseOpenListener listener;
	public DataBaseOpenHelper(Context context,String dbname,int version,DataBaseOpenListener listener) {
		// ��һ��������Ӧ�õ�������
		// �ڶ���������Ӧ�õ���ݿ�����
		// ���������CursorFactoryָ����ִ�в�ѯʱ���һ���α�ʵ��Ĺ�����,����Ϊnull,���ʹ��ϵͳĬ�ϵĹ�����
		// ���ĸ���������ݿ�汾�������Ǵ���0��int�����Ǹ���
		super(context, dbname, null, version);
		this.listener = listener;
	}

	public DataBaseOpenHelper(Context context, String name,
			CursorFactory factory, int version) {
		super(context, name, factory, version);
	}
	@Override
	public void onCreate(SQLiteDatabase db) {
		//db.execSQL("CREATE TABLE IF NOT EXISTS person (personid integer primary key autoincrement, name varchar(20), age INTEGER)");
		
		if(listener.getCreateSql()!=null){
			for(int i=0;i<listener.getCreateSql().length;i++){
				db.execSQL(listener.getCreateSql()[i]);
			}
		}
		if(listener.getIndexSql()!=null){
			for(int i=0;i<listener.getIndexSql().length;i++){
				db.execSQL(listener.getIndexSql()[i]);
			}
		}
	}
	
	
	// onUpgrade()��������ݿ�汾ÿ�η���仯ʱ������û��ֻ��ϵ���ݿ��ɾ��Ȼ�������´�����
	// һ����ʵ����Ŀ���ǲ����������ģ���ȷ���������ڸ�����ݿ��ṹʱ����Ҫ�����û��������ݿ��е���ݲ��ᶪʧ,�Ӱ汾�����µ��汾����
	@Override
	public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
//		db.execSQL("DROP TABLE IF EXISTS person");
//		onCreate(db);
		listener.onVersionUpgrade(db, arg1, arg2);
	}
	
	
	public interface DataBaseOpenListener{
		public String[] getCreateSql();
		public String[] getIndexSql();
		public void  onVersionUpgrade(SQLiteDatabase db, int arg1, int arg2);
	}
}
